package com.glink.manage.dto.mqtt;

import io.swagger.annotations.ApiModelProperty;
import lombok.AllArgsConstructor;
import lombok.Data;
import lombok.NoArgsConstructor;

import java.io.Serializable;
import java.util.List;

/**
 * Created by IntelliJ IDEA.
 * 车辆道闸摄像机注册
 * @Author : qiushaoshan
 * @create 2025/2/8 14:40
 */
@Data
@AllArgsConstructor
@NoArgsConstructor
public class CarBarrierGateCameraRegisterDTO implements Serializable {

    private static final long serialVersionUID = -2518527510021088272L;

    @ApiModelProperty(name = "cmd", notes = "命令（boot_reg表示设备注册）")
    private String cmd;

    @ApiModelProperty(name = "msg_id", notes = "消息 ID（此次请求的唯一标识，20 位长，前 13 位是毫秒时间，后 7 位是字母和数字的随机数）")
    private String msg_id;

    @ApiModelProperty(name = "sn", notes = "相机sn码")
    private String sn;
    
    @ApiModelProperty(name = "districtNumber", notes = "相机所在地区编号")
    private String districtNumber;

    @ApiModelProperty(name = "projectName", notes = "项目名称")
    private String projectName;

    @ApiModelProperty(name = "devNumber", notes = "项目编号")
    private String devNumber;

    @ApiModelProperty(name = "roadName", notes = "出入口名称")
    private String roadName;

    @ApiModelProperty(name = "roadNumber", notes = "出入口编号")
    private String roadNumber;

    @ApiModelProperty(name = "direction", notes = "方向;1:入口；2：出口")
    private int direction;

    @ApiModelProperty(name = "park_id", notes = "车场ID")
    private String park_id;
    
    @ApiModelProperty(name = "product_key", notes = "设备类型标识")
    private String product_key;

    @ApiModelProperty(name = "device_name", notes = "设备标识")
    private String device_name;

    @ApiModelProperty(name = "subtopic", notes = "订阅主题")
    private String subtopic;

    @ApiModelProperty(name = "pubtopic", notes = "发布主题")
    private String pubtopic;

    @ApiModelProperty(name = "utc_ts", notes = "注册时间戳")
    private String utc_ts;

    @ApiModelProperty(name = "local_time", notes = "注册时间")
    private String local_time;

    @ApiModelProperty(name = "model", notes = "设备型号")
    private String model;

    @ApiModelProperty(name = "mac", notes = "设备MAC地址")
    private String mac;

    @ApiModelProperty(name = "softwareVersion", notes = "软件版本号")
    private String softwareVersion;

    @ApiModelProperty(name = "ability", notes = "设备能力项")
    private CarBarrierGateCameraRegisterAbilityDTO ability;

    @ApiModelProperty(name = "supportedCmdList", notes = "已支持的所有上行和下行命令列表")
    private List<String> supportedCmdList;
}
